import {reqGoodsInfo, reqAddOrUpdateShopCart} from "network/home";
//封装游客临时身份模块 uuid--》 不能变
import {getUUID} from '@/utils/uuid_token'

const state = {
  goodInfo: {},
  //游客临时身份
  uuid_token: getUUID()
};

const mutations = {
  GETGOODINFO(state, goodInfo) {
    state.goodInfo = goodInfo
  }
};


const actions = {
  //获取产品信息
  async getGoodInfo(content, skuid) {
    let result = await reqGoodsInfo(skuid);
    // console.log(result);
    if (result.code === 200) {
      content.commit('GETGOODINFO', result.data);
    }

  },
  //将产品添加到购物车当中
  async addOrUpdateShopCart(content, {skuId, skuNum}) {
    // async addOrUpdateShopCart(content, payload) {
    //加入购物车返回的解构
    //加入购物车后（发请求）， 前台将数据给服务器
    //服务器写入数据成功， 并没有返回其他的数据，只是返回 code===200， 代表这次操作成功
    //因为服务器没有返回其余数据吗， 因此不需要三连环存储数据·
    let result = await reqAddOrUpdateShopCart(skuId, skuNum)
    // console.log(payload)
    // let result = await reqAddOrUpdateShopCart(payload.skuId ,payload.skuNum)
    // console.log(result)
    //代表加入购物车成功
    if (result.code === 200) {
      return Promise.resolve(result.message)
      // return 'ok'
    } else {
      //代表加入购物车失败
      return Promise.reject(new Error('faile'))
    }

  }


};
const getters = {
  //路径导航简化的数据
  categoryView(state) {
    //state.goodInfo 初始状态为空对象， 空对象的属性值undefined
    return state.goodInfo.categoryView || {}
  },
  //简化产品信息的数据
  skuInfo(state) {
    return state.goodInfo.skuInfo || {}
  },

  //产品售卖属性的简化
  spuSaleAttrList(state) {
    return state.goodInfo.spuSaleAttrList || []
  }


};

export default {
  state,
  actions,
  mutations,
  getters
}